using System;

namespace BizTalk.BuildGenerator.MetaData
{
    /// <summary>
    /// These are the args for generating the build
    /// </summary>
    [Serializable]
    public class GenerationArgs
    {        
        private ApplicationSetup _applicationSetup = new ApplicationSetup();
        private UnitTesting _unitTesting = new UnitTesting();
        private ApplicationDeployment _applicationDeployment = new ApplicationDeployment();
        private ApplicationBindings _applicationBindings = new ApplicationBindings();
        private ApplicationDescription _applicationDescription = new ApplicationDescription();
        private PublishedWebServices _webServices = new PublishedWebServices();
        private BuildReferences _buildReferences = new BuildReferences();
        private string _outputFolder;
        private string _solutionPath;        
        private BizTalkHosts _bizTalkHosts = new BizTalkHosts();
        private string _generationProvider;
        private BuildProperties _buildProperties = new BuildProperties();

        public BuildProperties BuildProperties
        {
            get { return _buildProperties; }
            set { _buildProperties = value; }
        }

        public string GenerationProvider
        {
            get { return _generationProvider; }
            set { _generationProvider = value; }
        }


        public string SolutionPath
        {
            get { return _solutionPath; }
            set { _solutionPath = value; }
        }

        public BizTalkHosts BizTalkHosts
        {
            get { return _bizTalkHosts; }
            set { _bizTalkHosts = value; }
        }
        
        public BuildReferences BuildReferences
        {
            get { return _buildReferences; }
            set { _buildReferences = value; }
        }

        public string OutputFolder
        {
            get { return _outputFolder; }
            set { _outputFolder = value; }
        }

        public PublishedWebServices WebServices
        {
            get { return _webServices; }
            set { _webServices = value; }
        }

        public ApplicationDescription ApplicationDescription
        {
            get { return _applicationDescription; }
            set { _applicationDescription = value; }
        }


        public ApplicationBindings ApplicationBindings
        {
            get { return _applicationBindings; }
            set { _applicationBindings = value; }
        }


        public ApplicationDeployment ApplicationDeployment
        {
            get { return _applicationDeployment; }
            set { _applicationDeployment = value; }
        }


        public UnitTesting UnitTesting
        {
            get { return _unitTesting; }
            set { _unitTesting = value; }
        }


        public ApplicationSetup ApplicationSetup
        {
            get { return _applicationSetup; }
            set { _applicationSetup = value; }
        }
    }
}